
package com.ktgj.common.spring.entity.iata.iata_seatavailabilityrs;

import java.math.BigInteger;
import java.util.ArrayList;
import java.util.List;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlType;


/**
 * <p>SeatMapType complex type的 Java 类。
 * 
 * <p>以下模式片段指定包含在此类中的预期内容。
 * 
 * <pre>
 * &lt;complexType name="SeatMapType"&gt;
 *   &lt;complexContent&gt;
 *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
 *       &lt;sequence&gt;
 *         &lt;element name="CabinCompartment" maxOccurs="unbounded"&gt;
 *           &lt;complexType&gt;
 *             &lt;complexContent&gt;
 *               &lt;extension base="{http://www.iata.org/IATA/2015/00/2018.2/IATA_SeatAvailabilityRS}CabinCompartmentType"&gt;
 *                 &lt;sequence&gt;
 *                   &lt;element name="CabinCompartmentID" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt;
 *                   &lt;element name="CabinComponent" type="{http://www.iata.org/IATA/2015/00/2018.2/IATA_SeatAvailabilityRS}CabinComponentType" maxOccurs="unbounded" minOccurs="0"/&gt;
 *                   &lt;element name="CabinType" type="{http://www.iata.org/IATA/2015/00/2018.2/IATA_SeatAvailabilityRS}CabinTypeType" minOccurs="0"/&gt;
 *                   &lt;element name="ColumnID" type="{http://www.w3.org/2001/XMLSchema}string" maxOccurs="unbounded" minOccurs="0"/&gt;
 *                   &lt;element name="DeckCode" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt;
 *                   &lt;element name="FirstRowNumber" type="{http://www.w3.org/2001/XMLSchema}integer" minOccurs="0"/&gt;
 *                   &lt;element name="LastRowNumber" type="{http://www.w3.org/2001/XMLSchema}integer" minOccurs="0"/&gt;
 *                   &lt;element name="SeatRow" type="{http://www.iata.org/IATA/2015/00/2018.2/IATA_SeatAvailabilityRS}SeatRowType" maxOccurs="unbounded" minOccurs="0"/&gt;
 *                 &lt;/sequence&gt;
 *               &lt;/extension&gt;
 *             &lt;/complexContent&gt;
 *           &lt;/complexType&gt;
 *         &lt;/element&gt;
 *         &lt;element name="DatedOperatingLegRefID" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt;
 *         &lt;element name="PaxSegmentRefID" type="{http://www.w3.org/2001/XMLSchema}string"/&gt;
 *       &lt;/sequence&gt;
 *     &lt;/restriction&gt;
 *   &lt;/complexContent&gt;
 * &lt;/complexType&gt;
 * </pre>
 * 
 * 
 */
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "SeatMapType", propOrder = {
    "cabinCompartment",
    "datedOperatingLegRefID",
    "paxSegmentRefID"
})
public class SeatMapType {

    @XmlElement(name = "CabinCompartment", required = true)
    protected List<SeatMapType.CabinCompartment> cabinCompartment;
    @XmlElement(name = "DatedOperatingLegRefID")
    protected String datedOperatingLegRefID;
    @XmlElement(name = "PaxSegmentRefID", required = true)
    protected String paxSegmentRefID;

    /**
     * Gets the value of the cabinCompartment property.
     * 
     * <p>
     * This accessor method returns a reference to the live list,
     * not a snapshot. Therefore any modification you make to the
     * returned list will be present inside the JAXB object.
     * This is why there is not a <CODE>set</CODE> method for the cabinCompartment property.
     * 
     * <p>
     * For example, to add a new item, do as follows:
     * <pre>
     *    getCabinCompartment().add(newItem);
     * </pre>
     * 
     * 
     * <p>
     * Objects of the following type(s) are allowed in the list
     * {@link SeatMapType.CabinCompartment }
     * 
     * 
     */
    public List<SeatMapType.CabinCompartment> getCabinCompartment() {
        if (cabinCompartment == null) {
            cabinCompartment = new ArrayList<SeatMapType.CabinCompartment>();
        }
        return this.cabinCompartment;
    }

    /**
     * 获取datedOperatingLegRefID属性的值。
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getDatedOperatingLegRefID() {
        return datedOperatingLegRefID;
    }

    /**
     * 设置datedOperatingLegRefID属性的值。
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setDatedOperatingLegRefID(String value) {
        this.datedOperatingLegRefID = value;
    }

    /**
     * 获取paxSegmentRefID属性的值。
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getPaxSegmentRefID() {
        return paxSegmentRefID;
    }

    /**
     * 设置paxSegmentRefID属性的值。
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setPaxSegmentRefID(String value) {
        this.paxSegmentRefID = value;
    }


    /**
     * <p>anonymous complex type的 Java 类。
     * 
     * <p>以下模式片段指定包含在此类中的预期内容。
     * 
     * <pre>
     * &lt;complexType&gt;
     *   &lt;complexContent&gt;
     *     &lt;extension base="{http://www.iata.org/IATA/2015/00/2018.2/IATA_SeatAvailabilityRS}CabinCompartmentType"&gt;
     *       &lt;sequence&gt;
     *         &lt;element name="CabinCompartmentID" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt;
     *         &lt;element name="CabinComponent" type="{http://www.iata.org/IATA/2015/00/2018.2/IATA_SeatAvailabilityRS}CabinComponentType" maxOccurs="unbounded" minOccurs="0"/&gt;
     *         &lt;element name="CabinType" type="{http://www.iata.org/IATA/2015/00/2018.2/IATA_SeatAvailabilityRS}CabinTypeType" minOccurs="0"/&gt;
     *         &lt;element name="ColumnID" type="{http://www.w3.org/2001/XMLSchema}string" maxOccurs="unbounded" minOccurs="0"/&gt;
     *         &lt;element name="DeckCode" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt;
     *         &lt;element name="FirstRowNumber" type="{http://www.w3.org/2001/XMLSchema}integer" minOccurs="0"/&gt;
     *         &lt;element name="LastRowNumber" type="{http://www.w3.org/2001/XMLSchema}integer" minOccurs="0"/&gt;
     *         &lt;element name="SeatRow" type="{http://www.iata.org/IATA/2015/00/2018.2/IATA_SeatAvailabilityRS}SeatRowType" maxOccurs="unbounded" minOccurs="0"/&gt;
     *       &lt;/sequence&gt;
     *     &lt;/extension&gt;
     *   &lt;/complexContent&gt;
     * &lt;/complexType&gt;
     * </pre>
     * 
     * 
     */
    @XmlAccessorType(XmlAccessType.FIELD)
    @XmlType(name = "", propOrder = {
        "cabinCompartmentID",
        "cabinComponent",
        "cabinType",
        "columnID",
        "deckCode",
        "firstRowNumber",
        "lastRowNumber",
        "seatRow"
    })
    public static class CabinCompartment
        extends CabinCompartmentType
    {

        @XmlElement(name = "CabinCompartmentID")
        protected String cabinCompartmentID;
        @XmlElement(name = "CabinComponent")
        protected List<CabinComponentType> cabinComponent;
        @XmlElement(name = "CabinType")
        protected CabinTypeType cabinType;
        @XmlElement(name = "ColumnID")
        protected List<String> columnID;
        @XmlElement(name = "DeckCode")
        protected String deckCode;
        @XmlElement(name = "FirstRowNumber")
        protected BigInteger firstRowNumber;
        @XmlElement(name = "LastRowNumber")
        protected BigInteger lastRowNumber;
        @XmlElement(name = "SeatRow")
        protected List<SeatRowType> seatRow;

        /**
         * 获取cabinCompartmentID属性的值。
         * 
         * @return
         *     possible object is
         *     {@link String }
         *     
         */
        public String getCabinCompartmentID() {
            return cabinCompartmentID;
        }

        /**
         * 设置cabinCompartmentID属性的值。
         * 
         * @param value
         *     allowed object is
         *     {@link String }
         *     
         */
        public void setCabinCompartmentID(String value) {
            this.cabinCompartmentID = value;
        }

        /**
         * Gets the value of the cabinComponent property.
         * 
         * <p>
         * This accessor method returns a reference to the live list,
         * not a snapshot. Therefore any modification you make to the
         * returned list will be present inside the JAXB object.
         * This is why there is not a <CODE>set</CODE> method for the cabinComponent property.
         * 
         * <p>
         * For example, to add a new item, do as follows:
         * <pre>
         *    getCabinComponent().add(newItem);
         * </pre>
         * 
         * 
         * <p>
         * Objects of the following type(s) are allowed in the list
         * {@link CabinComponentType }
         * 
         * 
         */
        public List<CabinComponentType> getCabinComponent() {
            if (cabinComponent == null) {
                cabinComponent = new ArrayList<CabinComponentType>();
            }
            return this.cabinComponent;
        }

        /**
         * 获取cabinType属性的值。
         * 
         * @return
         *     possible object is
         *     {@link CabinTypeType }
         *     
         */
        public CabinTypeType getCabinType() {
            return cabinType;
        }

        /**
         * 设置cabinType属性的值。
         * 
         * @param value
         *     allowed object is
         *     {@link CabinTypeType }
         *     
         */
        public void setCabinType(CabinTypeType value) {
            this.cabinType = value;
        }

        /**
         * Gets the value of the columnID property.
         * 
         * <p>
         * This accessor method returns a reference to the live list,
         * not a snapshot. Therefore any modification you make to the
         * returned list will be present inside the JAXB object.
         * This is why there is not a <CODE>set</CODE> method for the columnID property.
         * 
         * <p>
         * For example, to add a new item, do as follows:
         * <pre>
         *    getColumnID().add(newItem);
         * </pre>
         * 
         * 
         * <p>
         * Objects of the following type(s) are allowed in the list
         * {@link String }
         * 
         * 
         */
        public List<String> getColumnID() {
            if (columnID == null) {
                columnID = new ArrayList<String>();
            }
            return this.columnID;
        }

        /**
         * 获取deckCode属性的值。
         * 
         * @return
         *     possible object is
         *     {@link String }
         *     
         */
        public String getDeckCode() {
            return deckCode;
        }

        /**
         * 设置deckCode属性的值。
         * 
         * @param value
         *     allowed object is
         *     {@link String }
         *     
         */
        public void setDeckCode(String value) {
            this.deckCode = value;
        }

        /**
         * 获取firstRowNumber属性的值。
         * 
         * @return
         *     possible object is
         *     {@link BigInteger }
         *     
         */
        public BigInteger getFirstRowNumber() {
            return firstRowNumber;
        }

        /**
         * 设置firstRowNumber属性的值。
         * 
         * @param value
         *     allowed object is
         *     {@link BigInteger }
         *     
         */
        public void setFirstRowNumber(BigInteger value) {
            this.firstRowNumber = value;
        }

        /**
         * 获取lastRowNumber属性的值。
         * 
         * @return
         *     possible object is
         *     {@link BigInteger }
         *     
         */
        public BigInteger getLastRowNumber() {
            return lastRowNumber;
        }

        /**
         * 设置lastRowNumber属性的值。
         * 
         * @param value
         *     allowed object is
         *     {@link BigInteger }
         *     
         */
        public void setLastRowNumber(BigInteger value) {
            this.lastRowNumber = value;
        }

        /**
         * Gets the value of the seatRow property.
         * 
         * <p>
         * This accessor method returns a reference to the live list,
         * not a snapshot. Therefore any modification you make to the
         * returned list will be present inside the JAXB object.
         * This is why there is not a <CODE>set</CODE> method for the seatRow property.
         * 
         * <p>
         * For example, to add a new item, do as follows:
         * <pre>
         *    getSeatRow().add(newItem);
         * </pre>
         * 
         * 
         * <p>
         * Objects of the following type(s) are allowed in the list
         * {@link SeatRowType }
         * 
         * 
         */
        public List<SeatRowType> getSeatRow() {
            if (seatRow == null) {
                seatRow = new ArrayList<SeatRowType>();
            }
            return this.seatRow;
        }

    }

}
